import request from '@/utils/request'

// 函数的输入和输出
// 封装的好处
//   1. 我们再次调用这个接口的时候，不用记住地址和参数
//   2. 对接口的返回接口做统一的处理（Promise的链式调用）
/**
 *
 * 获取榜单列表
 * @param {*} type 榜单类型
 * @param {*} size 返回的个数
 * @param {*} offset 偏移量
 */
export function getBillList(type, size = 6, offset = 0) {
    const url = `/api/v1/restserver/ting?method=baidu.ting.billboard.billList&type=${type}&size=${size}&offset=${offset}`;
    return request.get(url).then(res => {
        // 对res做处理...
        // 后端返回给前端的数据不能直接使用，可以在这做统一的处理
        // 这样我们调用这个方法，拿到的就是能用的数据了
        return {
            ...res,
            songList: res.song_list
        }
    })
}

/**
 *  获取歌曲详情
 * @param songId 歌曲id
 * @returns {*} 通过promise获取歌曲详情
 */
export function getMusicDetail(songId) {
    const url = `/api/v1/restserver/ting?method=baidu.ting.song.play&songid=${songId}`
    return request.get(url);
}

/**
 * 获取歌词信息
 * @param lrcLink 歌词的地址（可以通过歌曲详情中获取到）
 * @returns {*} 歌词数据
 */
export function getLrc(lrcLink) {
    const url = `/baidu-api/data/song/lrc?lrc_link=${lrcLink}`
    return request.get(url)
}
